package table.tablemodel;

import java.util.Date;
import java.util.List;

import javax.swing.table.AbstractTableModel;

import bank.Kontobewegung;

public class KontobewegungenTableModel extends AbstractTableModel {

	private static final long serialVersionUID = 100L;

    private static final String[] COLUMN_NAMES = {"Datum", "Betrag"};

	private List<Kontobewegung> kontobewegungen;


	public KontobewegungenTableModel() {
	    super();
	}

	@Override
	public int getColumnCount() {
		return COLUMN_NAMES.length;
	}

	@Override
	public int getRowCount() {
		return getKontobewegung() == null ? 0 : getKontobewegung().size();
	}

	@Override
	public Object getValueAt(int rowIndex, int columnIndex) {
	    Kontobewegung kontobewegung = getKontobewegung().get(rowIndex);
		switch (columnIndex) {
		    case 0:
		        return kontobewegung.getDatum();

		    case 1:
                return kontobewegung.getBetrag();

		    default:
		        throw new IllegalStateException("Unknown column '" + columnIndex + "'");
		}
	}

    @Override
    public Class<?> getColumnClass(int columnIndex) {
        switch (columnIndex) {
            case 0:
                return Date.class;

            case 1:
                return Double.class;

            default:
                return Object.class;
        }
    }

	@Override
    public String getColumnName(int colNr) {
		return COLUMN_NAMES[colNr];
	}

	public List<Kontobewegung> getKontobewegung() {
		return kontobewegungen;
	}

	public void setKontobewegungen(List<Kontobewegung> aKonten) {
		kontobewegungen = aKonten;
		fireTableDataChanged();
	}
}
